package br.com.pfm.dao.impl;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.stereotype.Repository;

import br.com.pfm.dao.ItemFaturaDao;
import br.com.pfm.persistence.model.ItemFatura;

@Repository
public class ItemFaturaDaoImpl implements ItemFaturaDao{

	@PersistenceContext(unitName="pfm")
    private EntityManager em;
	
	@Override
	public void adiciona(ItemFatura itemFatura) {
		em.persist(itemFatura);
	}

	@Override
	public ArrayList<ItemFatura> getList(int idFatura) {
		
		Query query = em
				.createQuery("SELECT i FROM ItemFatura as i WHERE i.fatura.id = :pIdFatura");
		
		query.setParameter("pIdFatura", idFatura);
		
		@SuppressWarnings("unchecked")
		ArrayList<ItemFatura> itensFatura =	(ArrayList<ItemFatura>) query.getResultList();
		
		return itensFatura;
	}

	@Override
	public void adicionaLista(ArrayList<ItemFatura> itensFatura) {
		for(ItemFatura itemFatura : itensFatura){
			em.persist(itemFatura);
		}
	}

	@Override
	public List<ItemFatura> getItemFaturaConsolidados(int idItemFaturaRecorrente) {
		Query query = em.createQuery("SELECT I FROM ItemFatura AS I WHERE I.itemFaturaRecorrente.id = :pIdItemRecorrente");
		query.setParameter("pIdItemRecorrente", idItemFaturaRecorrente);
		
		
		@SuppressWarnings("unchecked")
		List<ItemFatura> rs = query.getResultList();
		return rs;
	}

}
